package eu.telecom_bretagne.RECRUT.demo;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import eu.telecom_bretagne.RECRUT.data.model.DossierCandidature;
import eu.telecom_bretagne.RECRUT.service.IServiceDossierCandidature;

public class AppelServiceDossierCandidature {

	public static void main(String[] args) {
		
		test_listeDossierCandidatures();
		
		test_modifierDossierCandidature();
		test_lireDossierCandidature(1);
		
		test_creerDossierCandidature();		
		test_listeDossierCandidatures();
		
		//test_supprimerDossierCandidature(1);		
		test_listeDossierCandidatures();
		
		test_retenirDossier();
		test_validerRH();
		test_validerDD();
		
		test_lireDossierCandidature(2);

		test_accepterDossier();
		
		test_listeDossierCandidatures();
		
	}

	public static IServiceDossierCandidature getServiceDossierCandidature() {
		
		InitialContext ctx;
		IServiceDossierCandidature serviceDossierCandidature = null;
		try {
			
			ctx = new InitialContext();
			serviceDossierCandidature = (IServiceDossierCandidature) ctx.lookup(IServiceDossierCandidature.JNDI_NAME);
		} 
		catch (NamingException e) {
			
			// Unable to retrieve the context or the service
			e.printStackTrace();
			System.exit(-1);
		}
		return serviceDossierCandidature;
	}

	public static void test_listeDossierCandidatures() {
		
		for (DossierCandidature dossierCandidature : getServiceDossierCandidature().listeDossierCandidatures()) {
			System.out.println("DossierCandidature id:" + dossierCandidature.getId() + " titre:"
					+ dossierCandidature.getTitreDossier());
		}
	}
	
	public static void test_lireDossierCandidature(int id) {

		DossierCandidature dossierCandidature = getServiceDossierCandidature().lireDossierCandidature(id);
		System.out.println("Dossier de candidature id=" + id +" titre:" + dossierCandidature.getTitreDossier());
	}
	
	public static void test_modifierDossierCandidature(){
		
		getServiceDossierCandidature().modifierDossierCandidature(1, "Dossier de candidature 1");
	}
	
	public static void test_creerDossierCandidature (){
		
		getServiceDossierCandidature().creerDossierCandidature("dossier XXX", 1, 1);
	}
	
	public static void test_supprimerDossierCandidature (int id){
		
		getServiceDossierCandidature().supprimerDossierCandidature(id);
	}
	
	public static void test_retenirDossier() {
		
		getServiceDossierCandidature().retenirDossierCandidature(2, 1);
	}
	
	public static void test_validerRH () {
		
		getServiceDossierCandidature().validerDossierRH(2, 1);
	}
	
	public static void test_validerDD () {
		
		getServiceDossierCandidature().validerDossierDD(2, 1);
	}
	
	public static void test_accepterDossier() {
		
		getServiceDossierCandidature().accepterDossierCandidature(2,1, "ArchiveXXX");
	}
}
